package com.meeting.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import com.meeting.common.result.Result;
import com.meeting.entity.MediaDeviceType;
import com.baomidou.mybatisplus.extension.service.IService;
import com.meeting.model.dto.mediadevicetype.MediaDeviceTypeAddRequest;
import com.meeting.model.dto.mediadevicetype.MediaDeviceTypeModifyRequest;
import com.meeting.model.dto.mediadevicetype.MediaDeviceTypeQueryRequest;
import com.meeting.model.vo.MediaDeviceTypeVO;
import jakarta.validation.Valid;
import jakarta.validation.constraints.NotNull;

import java.util.List;

/**
* @author 25843
* @description 针对表【media_device_type(多媒体设备类型表)】的数据库操作Service
* @createDate 2025-04-19 12:54:48
*/
public interface MediaDeviceTypeService extends IService<MediaDeviceType> {

    Wrapper<MediaDeviceType> getQueryWrapper(MediaDeviceTypeQueryRequest queryRequest);

    Boolean addMediaDeviceType(@Valid MediaDeviceTypeAddRequest queryRequest);

    Boolean modifyMediaDeviceType(@Valid MediaDeviceTypeModifyRequest modifyRequest);

    Boolean deleteMediaDeviceType(@NotNull(message = "主键缺失") Long id);

    /**
     * 根据会议室id获取会议室的媒体设备类型
     *
     * @param meetingRoomId
     * @return
     */
    Result<List<MediaDeviceTypeVO>> getMediaDeviceTypeListByMeetingRoomId(@Valid @NotNull(message = "会议室id缺失") Integer meetingRoomId);
}
